﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Data;
using System.Data.SqlClient;

using Padelcenter.Common;

namespace Padelcenter.DataAccess
{
    #region " SELECT " 
    #region "Tipo Propiedad"

    public class TipoPropiedad_Select : DataAccessBase
    {
        public TipoPropiedad_Select()
        {
            StoredProcedureName = StoredProcedure.Name.TipoPropiedad_SELECT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;
            TipoPropiedad_Select_Prm tipoPropiedad_Select_Prm = new TipoPropiedad_Select_Prm(this.TipoPropiedad);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, tipoPropiedad_Select_Prm.Parameters);

            return ds;
        }

        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }
    }

    public class TipoPropiedad_Select_Prm
    {
        public TipoPropiedad_Select_Prm(TipoPropiedad tipoPropiedad)
        {
            this.TipoPropiedad = tipoPropiedad;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idTipoPropiedad"    , this.TipoPropiedad.IdTipoPropiedad),
                new SqlParameter( "@ConFiltroActivo"    , this.TipoPropiedad.ConFiltroActivo),
                new SqlParameter( "@Activo"             , this.TipoPropiedad.Activo)
            };

            this.Parameters = parameters;
        }

        private SqlParameter[] _parameters;
        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }

    #endregion

    #region "Tipo Propiedad Descripcion"
    public class TipoPropiedadDescripcion_Select : DataAccessBase
    {
        public TipoPropiedadDescripcion_Select()
        {
            StoredProcedureName = StoredProcedure.Name.TipoPropiedadDescripcion_SELECT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            TipoPropiedadDescripcion_Select_Prm tipoPropiedadDescripcion_Select_Prm = new TipoPropiedadDescripcion_Select_Prm(this.TipoPropiedadDescripcion);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, tipoPropiedadDescripcion_Select_Prm.Parameters);

            return ds;
        }

        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }

        
    }

    public class TipoPropiedadDescripcion_Select_Prm
    {
        public TipoPropiedadDescripcion_Select_Prm(TipoPropiedadDescripcion tipoPropiedadDescripcion)
        {
            this.TipoPropiedadDescripcion = tipoPropiedadDescripcion;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idTipoPropiedad"    , this.TipoPropiedadDescripcion.TipoPropiedad.IdTipoPropiedad),
                new SqlParameter( "@idIdioma"           , this.TipoPropiedadDescripcion.Idioma.IdIdioma)
            };

            this.Parameters = parameters;
        }

        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }
    }
    #endregion
    #endregion

    #region " INSERT "
    #region "Tipo Propiedad"

    public class TipoPropiedad_Insert : DataAccessBase
    {
        public TipoPropiedad_Insert()
        {
            StoredProcedureName = StoredProcedure.Name.TipoPropiedad_INSERT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;
            TipoPropiedad_Insert_Prm tipoPropiedad_Insert_Prm = new TipoPropiedad_Insert_Prm(this.TipoPropiedad);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, tipoPropiedad_Insert_Prm.Parameters);

            return ds;
        }

        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }
    }

    public class TipoPropiedad_Insert_Prm
    {
        public TipoPropiedad_Insert_Prm(TipoPropiedad tipoPropiedad)
        {
            this.TipoPropiedad = tipoPropiedad;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@Descripcion"        , this.TipoPropiedad.Descripcion),
                new SqlParameter( "@ValidaEnCompra"     , this.TipoPropiedad.ValidaEnCompra),
                new SqlParameter( "@Activo"             , this.TipoPropiedad.Activo)
            };

            this.Parameters = parameters;
        }

        private SqlParameter[] _parameters;
        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }

    #endregion

    #region "Tipo Propiedad Descripcion"
    public class TipoPropiedadDescripcion_Insert : DataAccessBase
    {
        public TipoPropiedadDescripcion_Insert()
        {
            StoredProcedureName = StoredProcedure.Name.TipoPropiedadDescripcion_INSERT.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            TipoPropiedadDescripcion_Insert_Prm tipoPropiedadDescripcion_Insert_Prm = new TipoPropiedadDescripcion_Insert_Prm(this.TipoPropiedadDescripcion);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, tipoPropiedadDescripcion_Insert_Prm.Parameters);

            return ds;
        }

        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }


    }

    public class TipoPropiedadDescripcion_Insert_Prm
    {
        public TipoPropiedadDescripcion_Insert_Prm(TipoPropiedadDescripcion tipoPropiedadDescripcion)
        {
            this.TipoPropiedadDescripcion = tipoPropiedadDescripcion;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idTipoPropiedad"    , this.TipoPropiedadDescripcion.TipoPropiedad.IdTipoPropiedad),
                new SqlParameter( "@idIdioma"           , this.TipoPropiedadDescripcion.Idioma.IdIdioma),
                new SqlParameter( "@Descripcion"        , this.TipoPropiedadDescripcion.Descripcion),
                new SqlParameter( "@TextoWebPreSel"     , this.TipoPropiedadDescripcion.TextoWebPreSel),
                new SqlParameter( "@InitialSelText"     , this.TipoPropiedadDescripcion.InitialTextSel)

            };

            this.Parameters = parameters;
        }

        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }
    }
    #endregion
    #endregion

    #region " UPDATE "
    #region "Tipo Propiedad"

    public class TipoPropiedad_Update : DataAccessBase
    {
        public TipoPropiedad_Update()
        {
            StoredProcedureName = StoredProcedure.Name.TipoPropiedad_UPDATE.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;
            TipoPropiedad_Update_Prm tipoPropiedad_Update_Prm = new TipoPropiedad_Update_Prm(this.TipoPropiedad);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, tipoPropiedad_Update_Prm.Parameters);

            return ds;
        }

        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }
    }

    public class TipoPropiedad_Update_Prm
    {
        public TipoPropiedad_Update_Prm(TipoPropiedad tipoPropiedad)
        {
            this.TipoPropiedad = tipoPropiedad;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idTipoPropiedad"    , this.TipoPropiedad.IdTipoPropiedad),
                new SqlParameter( "@Descripcion"        , this.TipoPropiedad.Descripcion),
                new SqlParameter( "@ValidaEnCompra"     , this.TipoPropiedad.ValidaEnCompra),
                new SqlParameter( "@Activo"             , this.TipoPropiedad.Activo)
            };

            this.Parameters = parameters;
        }

        private SqlParameter[] _parameters;
        private TipoPropiedad _tipoPropiedad;

        public TipoPropiedad TipoPropiedad
        {
            get { return _tipoPropiedad; }
            set { _tipoPropiedad = value; }
        }

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }
    }

    #endregion



    #region "Tipo Propiedad Descripcion"
    public class TipoPropiedadDescripcion_Update : DataAccessBase
    {
        public TipoPropiedadDescripcion_Update()
        {
            StoredProcedureName = StoredProcedure.Name.TipoPropiedadDescripcion_UPDATE.ToString();
        }

        public DataSet Get()
        {
            DataSet ds;

            TipoPropiedadDescripcion_Update_Prm tipoPropiedadDescripcion_Update_Prm = new TipoPropiedadDescripcion_Update_Prm(this.TipoPropiedadDescripcion);
            DataBaseHelper dbhelper = new DataBaseHelper(StoredProcedureName);
            ds = dbhelper.Run(base.ConnectionString, tipoPropiedadDescripcion_Update_Prm.Parameters);

            return ds;
        }

        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }


    }

    public class TipoPropiedadDescripcion_Update_Prm
    {
        public TipoPropiedadDescripcion_Update_Prm(TipoPropiedadDescripcion tipoPropiedadDescripcion)
        {
            this.TipoPropiedadDescripcion = tipoPropiedadDescripcion;
            this.BuildParams();
        }

        private void BuildParams()
        {
            SqlParameter[] parameters = 
            {
                new SqlParameter( "@idTipoPropiedad"    , this.TipoPropiedadDescripcion.TipoPropiedad.IdTipoPropiedad),
                new SqlParameter( "@idIdioma"           , this.TipoPropiedadDescripcion.Idioma.IdIdioma),
                new SqlParameter( "@Descripcion"        , this.TipoPropiedadDescripcion.Descripcion),
                new SqlParameter( "@TextoWebPreSel"     , this.TipoPropiedadDescripcion.TextoWebPreSel),
                new SqlParameter( "@InitialSelText"     , this.TipoPropiedadDescripcion.InitialTextSel)

            };

            this.Parameters = parameters;
        }

        private TipoPropiedadDescripcion _tipoPropiedadDescripcion;
        private SqlParameter[] _parameters;

        public SqlParameter[] Parameters
        {
            get { return _parameters; }
            set { _parameters = value; }
        }

        public TipoPropiedadDescripcion TipoPropiedadDescripcion
        {
            get { return _tipoPropiedadDescripcion; }
            set { _tipoPropiedadDescripcion = value; }
        }
    }
    #endregion
    #endregion
}
